/*
 * Cubo.h
 *
 *  Created on: Oct 13, 2012
 *      Author: romina
 */

#ifndef CUBO_H_
#define CUBO_H_

#include <list>
#include "../Exceptions/RecordNotFoundException.h"
#include "../Exceptions/RecordDuplicatedException.h"
#include "../Comunes/Constantes.h"
#include "../Comunes/Entidades/RecordFrase.h"
#include "../Comunes/Palabra.h"
#include "../Persistencia/Persistor.h"
#include "../Persistencia/Serializable.h"

using namespace std;

class Cubo : Serializable{
	int tamanio;
	int id;
	int td;
	list<RecordFrase> registros;
public:
	Cubo();
	int get_td();
	void set_td(int td);
	int get_id();
	void set_id(int id);
	int cantidad_reg();
	void duplicar_td();
	void truncar_td();
	void insertar_registro(RecordFrase registro);
	void modificar_registro(RecordFrase registro);
	void eliminar_registro(int id);
	void buscar_registro(int id, RecordFrase & registro);

	list<RecordFrase> listar_registros();
	void serializar(char * buffer, unsigned int &offset);
	void deserializar(char * buffer, unsigned int &offset);
	bool vacio();
	bool overflow(int cant);
	string toString();
	string toStringInfo();
	void show();
	virtual ~Cubo();
};

#endif /* CUBO_H_ */
